package cn.cloudreal.cbms.project.service;
/**
 * <p>
 * Title: ITC
 * </p>
 * <p>
 * Description：项目明细信息处理业务接口
 * </p>
 * <p>
 * Copyright: Copyright (c) 2012
 * </p>
 * <p>
 * Company:云恒瑞通
 * </p>
 * 
 * @author tianxu
 * @date 2012-07-09
 */
import java.util.List;
import java.util.Map;

import cn.cloudreal.cbms.common.exception.ITCException;
import cn.cloudreal.cbms.common.util.PageBean;
import cn.cloudreal.cbms.vo.CastForProj;
import cn.cloudreal.cbms.vo.Project;

public interface ProjectService
{
    /**
     * @category 查询项目列表数据
     * @param    params Map<String,Object>,page PageBean 
     * @return   List<Project>
     * @exception ITCException
     */
    public List<Project> getProjectList(Map<String,Object> params ,PageBean page) throws ITCException;
    /**
     * @category 获取项目下相关信息
     * @param project Project
     * @return Map<String,Object>
     * @exception ITCException
     */
    public Project getProjectRelateInfo(Map<String,Object> params) throws ITCException;
    /**
     * @category 新增项目信息
     * @exception ITCException
     * @param project Project
     * @return boolean
     */
    public boolean addProjectInfo(Project project) throws ITCException;
    
    /**
     * @category 修改项目信息
     * @exception ITCException
     * @param project Project
     * @return boolean
     */
    public boolean modProjectInfo(Project project) throws ITCException;
    
    /**
     * @category 删除项目相关信息
     * @exception ITCException
     * @param projectId String
     * @return boolean
     */
    public boolean delProjectInfo(String projectId) throws ITCException;
    
    /**
     * @category 根据项目编号获取对应投放明细信息
     * @exception ITCException
     * @param projectId String
     * @return String
     */
    public String getProjCurStatus(String projectId) throws ITCException;
    
    /**
     * @category 获取投放次数（当前）
     * @exception ITCException
     * @param projectId String
     * @return String
     */
    public Integer getAmountByCur(Map<String,Object> params) throws ITCException;
    
    /**
     * @category 获取投放次数（历史）
     * @exception ITCException
     * @param projectId String
     * @return String
     */
    public Integer getAmountByHis(Map<String,Object> params) throws ITCException;
    
    /**
     * @category 根据项目编号获取对应投放明细信息
     * @exception ITCException
     * @param projectId String
     * @return Map<String, Integer>
     */
    
    public Map<String, Integer> getCastCountByProjId(String projectId,String curStatus) throws ITCException;
    
    /**
     * @category 根据项目编号获取对应投放明细信息
     * @exception ITCException
     * @param projectId String
     * @return Map<String,List<CastForProj>>
     */
    
    public Map<String,List<CastForProj>> getCastByProjId(String projectId,String curStatus) throws ITCException;
    
    /**
     * @category 根据项目编号获取对应投放明细排期信息
     * @exception ITCException
     * @param projectId String
     * @return List<CastDetail>
     */
    public List<CastForProj> getCastArrangeByProjId(String projectId) throws ITCException;
    
    /**
     * @category 根据项目媒介ID删除项目媒介信息
     * @exception ITCException
     * @param projMedId Integer
     * @return boolean 
     */
    
    public boolean deleteCastInfo(Integer projMedId) throws ITCException;
    
    /**
     * @category 根据项目媒介ID修改投放明细状态
     * @exception ITCException
     * @param proMedIds List<Integer> , status String
     * @return boolean 
     */
    public boolean updateCastStatus(String status,List<Integer> proMedIds) throws ITCException;
    
}
